Libraries

Sesión 00: Introducción a R


1 Contenidos ayudantía

  • ¿Qué es R?
  • Interfaz de R-studio
    • Consola
    • Sintáxis
    • Enviornment (objetos)
  • Funciones básicas en R
    • Operadores lógicos
    • Transformaciones básicas
  • Uso de Bases de Datos
    • Cargar una base de datos
    • Tipos de datos
    • Descripción de datos

1.1 ¿Qué es R ?

  1. R es un software libre, por tanto es totalmente gratuito y abierto. Tiene una comunidad a nivel mundial muy activa, donde se comparte todo tipo de contenido relacionado con el análisis de datos.

  2. Es un lenguaje de programación, de modo que también es posible que los usuarios elaboren sus propias funciones o “paquetes”.

  3. Tiene una fuerte orientación al análisis estadístico y visualización de datos.

  4. Una de sus principales características es que posee una lógica de programación orientada a Objetos (Object Oriented programming). Lo veremos en detalle más adelante.

  5. El editor nativo de R es poco amigable para los usuarios. Por lo tanto, lo más adecuado es emplear una Interfaz de Usuario (IDE por Integrated development environment)

  • RStudio será la interfaz que utilizaremos en el curso.

1.2 R es una gran calculadora

  • Una de las características principales de R es que nos permite emplearlo como una “base” para realizar cálculos matemáticos simples, como también emplear funciones complejas a través de paquetes especializados.

  • Al ser una plataforma abierta, es posible utilizar una infinidad de paquetes que otros usuarios han desarrollado. Los paquetes son grupos de funciones que usuarios han programado con algún objetivo, el cual queda abierto a la comunidad para su libre acceso.

Aquí hay algunos ejemplos:

1+1
## [1] 2
(100+100)/4
## [1] 50

1.3 Programación orientada a objetos

  • El hecho de R tenga una “orientación a objetos” tiene varias ventajas.
  1. Es posible “guardar” nuestros objetos, los cuales pueden ser números, palabras, resultados, funciones, etc.
  2. Al tenerlos “guardados” los podemos “llamar” cuando sea necesario.
  3. El símbolo <- permite indicarle a R que queremos “guardar” un objeto
a <- 100 #Guardamos 100 dentro del objeto a
b <- 4   #Guardamos 4 dentro del objeto b
c <- 1+1 #Guardamos el resultado de 1+1 en c
print(a)
## [1] 100
print(a*b) #multiplicando a x b
## [1] 400
d <- (a*a)/b #a x a dividido b
print(d)
## [1] 2500
#O su versión abreviada:
d
## [1] 2500
d^2 #Estamos elevando al cuadrado al objeto e
## [1] 6250000

1.4 Operadores lógicos

1.5 Transformaciones básicas

2 Abrir una Base de datos:

  • Para introducir datos en R es posible emplear distintas formas:
  1. A través de comando para leer texto (read.txt, read.csv)
  2. Empleando librerías complementarias con funcionalidades para importar bases provenientes de otros programas:
install.packages("haven") #cargar .sav (SPSS)
library(haven) #Cargar la librería

Cargar una base de datos en .csv

tt <- read_sav(url("https://jciturras.github.io/ayudantia-sol3051/slides/00-intro-r/data/titanic2.sav")) 
tt <- read.csv(url("https://jciturras.github.io/ayudantia-sol3051/slides/00-intro-r/data/titanic.csv"))

3 Tipos de datos en R

  • Numérico (numeric; números con decimales)
  • Números enteros (integer)
  • Lógicos: Verdadero o Falso
  • Variables cadena o texto (string / character)
  • Factores (factor): para variables cualitativas (nominales)

#Tipos de estructura de datos:

  • Vector (vector) columna o fila de datos numéricos (una variable individual)
  • Matrices (matrix): arreglo de dos dimenisones de datos numéricos (conjunto de variables)
  • Data.frame (base de datos): Matriz de datos en el que las columnas tienen adignado nombres, y que permite usar todo tipo de datos.

Todos estos pueden ser tratados como objetos.

4 Describamos nuestros datos

summary(tt$age) #Estadísticos descriptivos
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1667 21.0000 28.0000 29.8811 39.0000 80.0000
mean(tt$age) #Media de edad
## [1] 29.88113
sd(tt$age) #desviación estándar de edad
## [1] 14.4135
summary.factor(tt$sex) # ¿cuántos hombres y mujeres hay?
## Hombre  Mujer 
##    658    388

summary.factor(tt$pclass) #Con summary también podemos ver un factor
##       Clase Alta       Clase Baja Clase Intermedia 
##              284              501              261
table(tt$pclass) #Otra alternativa
## 
##       Clase Alta       Clase Baja Clase Intermedia 
##              284              501              261
prop.table(table(tt$pclass)) #Vemos las proporciones
## 
##       Clase Alta       Clase Baja Clase Intermedia 
##        0.2715105        0.4789675        0.2495220
table(tt$pclass, tt$sex) #tabla cruzada sexo y clase social
##                   
##                    Hombre Mujer
##   Clase Alta          151   133
##   Clase Baja          349   152
##   Clase Intermedia    158   103

5 Base de datos

Nombre Descripción Valores Categorías
pclass Clase del pasajero/a 1 Clase Alta
2 Clase Intermedia
3 Clase Baja
survived Estatus sobrevivencia 1 No sobrevive
2 Sobrevive
name Nombre
sex Sexo pasajero/a 1 Hombre
2 Mujer
age Edad pasajero/a rango: 0.2-80.0
sibsp Número de parientes rango: 0-8
parch Número de padres / niños a bordo rango: 0-9